{"componentChunkName":"component---src-templates-blog-tsx","path":"/blog/Building-a-Timer-App/","result":{"data":{"markdownRemark":{"html":"<figure class=\"gatsby-resp-image-figure\" style>\n    <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1140px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 56.14035087719298%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIBAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHFhGGKw//EABcQAQEBAQAAAAAAAAAAAAAAAAAREEH/2gAIAQEAAQUCqrnH/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFBABAAAAAAAAAAAAAAAAAAAAIP/aAAgBAQAGPwJf/8QAFhABAQEAAAAAAAAAAAAAAAAAARAA/9oACAEBAAE/IcLMf//aAAwDAQACAAMAAAAQQA//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAbEAEAAgIDAAAAAAAAAAAAAAABABEQITFBof/aAAgBAQABPxAfXsRN1eNsIBOWXP/Z&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"Productshot of timer app\" title=\"Phone Mockup by **[deathcoretm](https://www.deviantart.com/deathcoretm/art/Nexus-6P-Phone-Mockup-600758321)** / **[CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)**\" src=\"/static/d65c7e83dd5bddbc5e3f6b6bb09015a5/65ac4/product_shot_2-01.jpg\" srcset=\"/static/d65c7e83dd5bddbc5e3f6b6bb09015a5/65031/product_shot_2-01.jpg 285w,\n/static/d65c7e83dd5bddbc5e3f6b6bb09015a5/fd252/product_shot_2-01.jpg 570w,\n/static/d65c7e83dd5bddbc5e3f6b6bb09015a5/65ac4/product_shot_2-01.jpg 1140w,\n/static/d65c7e83dd5bddbc5e3f6b6bb09015a5/b2dda/product_shot_2-01.jpg 1710w,\n/static/d65c7e83dd5bddbc5e3f6b6bb09015a5/69b48/product_shot_2-01.jpg 1920w\" sizes=\"(max-width: 1140px) 100vw, 1140px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\"><p>Phone Mockup by <strong><a href=\"https://www.deviantart.com/deathcoretm/art/Nexus-6P-Phone-Mockup-600758321\">deathcoretm</a></strong> / <strong><a href=\"https://creativecommons.org/licenses/by-nc-sa/3.0/\">CC BY-NC-SA 3.0</a></strong></p></figcaption>\n  </figure>\n<p>I have been searching for a tool to help me keep track of time for quite a while. I had many timer apps pulling my attention away from my task, often caused by updating the digits every second like a digital clock on steroids.</p>\n<p>No one is interested whether they have 56sec left when giving a speech but whether they just passed the halftime mark. The goal is to reduce distraction and cognitive load. So, I decided to build my own app and I want to show you how I did it.</p>\n<p>Another feature needed by some time management techniques is splitting the time into intervals. For example, the Pomodoro technique suggests 25min of work followed by a 5min break. I came across an app called <a href=\"https://play.google.com/store/apps/details?id=fi.ohra.impetus\">Impetus</a> which can handle this particular well, however, its digital clock distracts me.</p>\n<h2>Sketching the MVP</h2>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1140px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 56.14035087719298%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUGAgT/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAe1XQLynTJo//8QAGxAAAgMAAwAAAAAAAAAAAAAAAgQAAQMRE0H/2gAIAQEAAQUCBXII0v13zPXSscJ//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHhAAAAQHAAAAAAAAAAAAAAAAABAhMgECERJBcaH/2gAIAQEABj8CZXYvlZHhplC//8QAHBAAAgICAwAAAAAAAAAAAAAAAREAECFBMVFx/9oACAEBAAE/IeCAhvKYn7ANqqD10zeV/9oADAMBAAIAAwAAABAfz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/ECf/xAAdEAEAAgEFAQAAAAAAAAAAAAABABEhMUFRcaHR/9oACAEBAAE/EHjtx+48l+Ft1B8nbjSClLNZ5hJSIaG1tAKn/9k=&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"Wireframing in my journal\" title=\"Wireframing in my journal\" src=\"/static/58fb293bec46e8915d41db9db5306153/65ac4/journal.jpg\" srcset=\"/static/58fb293bec46e8915d41db9db5306153/65031/journal.jpg 285w,\n/static/58fb293bec46e8915d41db9db5306153/fd252/journal.jpg 570w,\n/static/58fb293bec46e8915d41db9db5306153/65ac4/journal.jpg 1140w,\n/static/58fb293bec46e8915d41db9db5306153/b2dda/journal.jpg 1710w,\n/static/58fb293bec46e8915d41db9db5306153/48919/journal.jpg 2280w,\n/static/58fb293bec46e8915d41db9db5306153/c2cc8/journal.jpg 4032w\" sizes=\"(max-width: 1140px) 100vw, 1140px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>I took out my journal and started wireframing. I replaced the digits by an animated arc. The shape lets you easily guess how much time is left and the changes are quite subtle to prevent distraction when running slowly Integrating the interval feature was more challenging. I opted for a solution using an outer and an inner circle, the latter divided into arcs representing the different intervals and getting smaller as time progresses.</p>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1140px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 50.526315789473685%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABQAD/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABYEcGHrOP/8QAGxAAAQQDAAAAAAAAAAAAAAAAAQACAzIEBTH/2gAIAQEAAQUCkrr3EuUnMGxX/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGhAAAQUBAAAAAAAAAAAAAAAAAQACEBFxIf/aAAgBAQAGPwI4n2b5BxOyP//EABkQAQEAAwEAAAAAAAAAAAAAAAEAETFBof/aAAgBAQABPyH0rgwbgMavUiGM4miYeX//2gAMAwEAAgADAAAAEKAP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGxABAAIDAQEAAAAAAAAAAAAAAQARITFRYfD/2gAIAQEAAT8QqMAI114wuejG1ZlRhrk+9xlYhyPYYIFNM//Z&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"Creating mock-ups with Figma\" title=\"Creating mock-ups with Figma\" src=\"/static/677e782eb55c5299a53547e543f3bf7a/65ac4/figma.jpg\" srcset=\"/static/677e782eb55c5299a53547e543f3bf7a/65031/figma.jpg 285w,\n/static/677e782eb55c5299a53547e543f3bf7a/fd252/figma.jpg 570w,\n/static/677e782eb55c5299a53547e543f3bf7a/65ac4/figma.jpg 1140w,\n/static/677e782eb55c5299a53547e543f3bf7a/b2dda/figma.jpg 1710w,\n/static/677e782eb55c5299a53547e543f3bf7a/69b48/figma.jpg 1920w\" sizes=\"(max-width: 1140px) 100vw, 1140px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>Next step was using a mock-up (and prototyping) tool like <a href=\"http://sketch.com\">Sketch</a> to transform my hand-drawn wireframes into a visual design. I went with <a href=\"http://figma.com\">Figma</a> because it's browser based and free. I actually love playing with colours. For me that's always the most fun part.</p>\n<h2>Setting up Product Backlog</h2>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1140px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 56.14035087719298%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQBAwUG/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABuZ5yBszw/8QAGBABAQEBAQAAAAAAAAAAAAAAAgMBACH/2gAIAQEAAQUCmZzhs5sMTxTW8lvLzf/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/ASf/xAAbEAADAAIDAAAAAAAAAAAAAAAAARECIRBBkf/aAAgBAQAGPwLF5lT0deErhLrj/8QAHBABAAICAwEAAAAAAAAAAAAAAQARIVExQYGx/9oACAEBAAE/IQm0WS4Wxi8/ZWBcJpNosWCVOvZxTE//2gAMAwEAAgADAAAAEKPv/8QAFhEAAwAAAAAAAAAAAAAAAAAAARAh/9oACAEDAQE/EDF//8QAFhEBAQEAAAAAAAAAAAAAAAAAEQAB/9oACAECAQE/ENOk3//EABsQAQEBAQADAQAAAAAAAAAAAAERIQAxQZGx/9oACAEBAAE/EFVlGBtS+uONXRB8GcsBTzB+M4cIIiEHk+qJWar2nFDDO//Z&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"backlog retouched\" title=\"backlog retouched\" src=\"/static/d6ae2133eee8ea15f4b95b24cb7722dd/65ac4/backlog_retouched.jpg\" srcset=\"/static/d6ae2133eee8ea15f4b95b24cb7722dd/65031/backlog_retouched.jpg 285w,\n/static/d6ae2133eee8ea15f4b95b24cb7722dd/fd252/backlog_retouched.jpg 570w,\n/static/d6ae2133eee8ea15f4b95b24cb7722dd/65ac4/backlog_retouched.jpg 1140w,\n/static/d6ae2133eee8ea15f4b95b24cb7722dd/b2dda/backlog_retouched.jpg 1710w,\n/static/d6ae2133eee8ea15f4b95b24cb7722dd/48919/backlog_retouched.jpg 2280w,\n/static/d6ae2133eee8ea15f4b95b24cb7722dd/c2cc8/backlog_retouched.jpg 4032w\" sizes=\"(max-width: 1140px) 100vw, 1140px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>I am a big fan of an agile approach, having to work less while achieving more. To support my endeavour, I created a Kanban board on <a href=\"https://trello.com/\">Trello</a> and started putting my ideas into a \"Product Backlog\" column. I recommend adding the business value of each Backlog Item in some form to maximize value by ranking the items accordingly. Don't forget to append a column \"Next\" consisting of preselected items, ready to implement and of high value. Make them as small as possible and independent (for more advice about good Product Backlog Items lookup <a href=\"https://en.wikipedia.org/wiki/INVEST_(mnemonic)\">INVEST</a> criteria).  As I progress, I will have a clearer picture about what is to be done and update the Backlog continuously.</p>\n<h2>Implementation</h2>\n<p>Rather than building a native app I decided to use a cross-platform framework allowing me to build an app for all of OS at the same time. For my project, I chose <a href=\"https://reactnative.dev/\">React Native</a> from Facebook. It's a well-established framework (allowing me to code in JavaScript) with a huge fanbase and good IDE support.</p>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1140px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 56.14035087719298%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIDBAX/xAAUAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHMjdEYrg//xAAYEAADAQEAAAAAAAAAAAAAAAAAAQIxEv/aAAgBAQABBQIrE55Kw//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABYQAAMAAAAAAAAAAAAAAAAAAAEQIP/aAAgBAQAGPwJCP//EABkQAAIDAQAAAAAAAAAAAAAAABEhAAEQYf/aAAgBAQABPyGsGEENdhG//9oADAMBAAIAAwAAABBwD//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/ECf/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxBn/8QAHRABAAIBBQEAAAAAAAAAAAAAAQARcRAhMUGxwf/aAAgBAQABPxBWPcuPJEHs1kt8qKSHFz00/9k=&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"Visual Studio Code\" title=\"Visual Studio Code\" src=\"/static/7857d505b44faae4ab7e4ff67f52e2c8/65ac4/draft_visual_studio_code.jpg\" srcset=\"/static/7857d505b44faae4ab7e4ff67f52e2c8/65031/draft_visual_studio_code.jpg 285w,\n/static/7857d505b44faae4ab7e4ff67f52e2c8/fd252/draft_visual_studio_code.jpg 570w,\n/static/7857d505b44faae4ab7e4ff67f52e2c8/65ac4/draft_visual_studio_code.jpg 1140w,\n/static/7857d505b44faae4ab7e4ff67f52e2c8/b2dda/draft_visual_studio_code.jpg 1710w,\n/static/7857d505b44faae4ab7e4ff67f52e2c8/69b48/draft_visual_studio_code.jpg 1920w\" sizes=\"(max-width: 1140px) 100vw, 1140px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>I don't want to go too much into technical details. As you can see in the picture, I used <a href=\"https://code.visualstudio.com/\">Visual Studio Code</a> as my IDE which supports React Native very well. Moreover, I integrated <a href=\"https://github.com/Microsoft/TypeScript\">TypeScript</a> which supports type hints, thus, forcing me to write better and cleaner code.</p>\n<p>Seeing my product vision come to life over the course of a couple of hours was exciting. Most challenging was the handle the animation which included drawing the timer, reacting on different events, etc.</p>\n<h2>Final Design</h2>\n<figure class=\"gatsby-resp-image-figure\" style>\n    <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1140px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 56.14035087719298%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAIF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABxEC0D//EABcQAAMBAAAAAAAAAAAAAAAAAAAREiD/2gAIAQEAAQUCZQ8f/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFBABAAAAAAAAAAAAAAAAAAAAIP/aAAgBAQAGPwJf/8QAGBAAAwEBAAAAAAAAAAAAAAAAAAERIWH/2gAIAQEAAT8hq8HSxQWdKysp/9oADAMBAAIAAwAAABDHD//EABYRAQEBAAAAAAAAAAAAAAAAABEQIf/aAAgBAwEBPxBwn//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABwQAQACAQUAAAAAAAAAAAAAAAEAESFBYYGRof/aAAgBAQABPxAxL6RUbBzGQrM0rm95LOVn/9k=&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"Screen of final visual design\" title=\"Phone Mockup by **[deathcoretm](https://www.deviantart.com/deathcoretm/art/Nexus-6P-Phone-Mockup-600758321)** / **[CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)**\" src=\"/static/b1266f6bb8ac9e0a479544518af97b8c/65ac4/final_design.jpg\" srcset=\"/static/b1266f6bb8ac9e0a479544518af97b8c/65031/final_design.jpg 285w,\n/static/b1266f6bb8ac9e0a479544518af97b8c/fd252/final_design.jpg 570w,\n/static/b1266f6bb8ac9e0a479544518af97b8c/65ac4/final_design.jpg 1140w,\n/static/b1266f6bb8ac9e0a479544518af97b8c/b2dda/final_design.jpg 1710w,\n/static/b1266f6bb8ac9e0a479544518af97b8c/69b48/final_design.jpg 1920w\" sizes=\"(max-width: 1140px) 100vw, 1140px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\"><p>Phone Mockup by <strong><a href=\"https://www.deviantart.com/deathcoretm/art/Nexus-6P-Phone-Mockup-600758321\">deathcoretm</a></strong> / <strong><a href=\"https://creativecommons.org/licenses/by-nc-sa/3.0/\">CC BY-NC-SA 3.0</a></strong></p></figcaption>\n  </figure>\n<p>In the picture above you can see the final MVP. The timer is shown when you enter the app. I added two other screens to manage the different intervals and to edit them. I kept the visual design consistent, however, it will be important to know if the user will understand what is to be done by just looking despite the minimalistic approach.</p>\n<p>I deviated from my mock-up a bit and decided to show the name of the current interval and its duration as a static text. I decreased the width of the inner circle showing the intervals, but it must be evaluated whether users get distracted by it too much and a redesign is necessary.</p>\n<p>While I was coding, I was continuously refining and re-ordering my Product Backlog, appending new ideas and bugs, to focus solely on the must haves. Having done them, I should be good to go now!</p>\n<h2>Setting the Stage for the Moment of Truth</h2>\n<p>If my assumptions are correct people will find my app less distracting than competing products. Therefore, a minimum success criterion could be that the app is used more often than other timers, hinting at a real demand for it. In order to specify <em>more often</em>, let's setup a metric \"number of usages\" whereas each usage is defined as applying the timer to one task regardless of how long it took to complete and how many times the app was re-opened.</p>\n<p>After all the hard work, it's time to start the MVP experiment by rolling out the app to a small test group. This will include gathering feedback about their experience and collecting quantitative data. Will the minimum criterion for success be met? And most importantly, would they be willing to buy the product? Find out in the upcoming blog post!</p>","fields":{"slug":"/blog/Building-a-Timer-App/"},"frontmatter":{"title":"Building a Timer App","date":"2020-04-20T00:00:00.000Z","short":"The making-of my React Native timer app, showing you the complete process how to get from a problem to a real product.","subtitle":"Run. Timer. Run.","medium":null,"keywords":null}}},"pageContext":{"slug":"/blog/Building-a-Timer-App/"}},"staticQueryHashes":[]}